其他
面试官:为什么要重写 hashcode 和 equals 方法?
作者丨hsm_computer
正文
1. 通过Hash算法来了解HashMap对象的高效性
2. 为什么要重写equals和hashCode方法
class Key {
private Integer id;
public Integer getId(){
return id;
}
public Key(Integer id){
this.id = id;
}
//故意先注释掉equals和hashCode方法
// public boolean equals(Object o) {
// if (o == null || !(o instanceof Key))
// { return false; }
// else
// { return this.getId().equals(((Key) o).getId());}
// }
// public int hashCode()
// { return id.hashCode(); }
}
public class WithoutHashCode {
public static void main(String[] args) {
Key k1 = new Key(1);
Key k2 = new Key(1);
HashMap<Key,String> hm = new HashMap<Key,String>();
hm.put(k1, "Key with id is 1");
System.out.println(hm.get(k2));
}
}
3. 对面试问题的说明
阅读更多
相信自己,没有做不到的,只有想不到的
在这里获得的不仅仅是技术!
喜欢就给个“在看”